import { IPSDEUIActionItem } from '../../app/view/ipsdeuiaction-item';
import { IPSWFUIActionItem } from '../../app/view/ipswfuiaction-item';
import { IPSDEContextMenuItem } from './ipsdecontext-menu-item';
import { IPSUIAction } from '../../view/ipsuiaction';

/**
 *
 * 子接口类型识别属性[]
 * 继承父接口类型值[DEUIACTION]
 * @export
 * @interface IPSDECMUIActionItem
 */
export interface IPSDECMUIActionItem extends IPSDEContextMenuItem, IPSDEUIActionItem, IPSWFUIActionItem {
  /**
   * 行为级别
   * @description 值模式 [界面行为行为级别] {50：不常用、 100：一般操作、 200：常用操作、 250：关键操作 }
   * @type {( number | 50 | 100 | 200 | 250)}
   * @default 100
   */
  actionLevel: number | 50 | 100 | 200 | 250;

  /**
   * 界面行为组展开模式
   * @description 值模式 [界面行为组展开模式] {ITEM：按项展开（默认）、 ITEMS：按分组展开 }
   * @type {( string | 'ITEM' | 'ITEMS')}
   */
  groupExtractMode: string | 'ITEM' | 'ITEMS';

  /**
   * 界面行为对象
   *
   * @type {IPSUIAction}
   */
  getPSUIAction(): IPSUIAction | null;

  /**
   * 界面行为对象
   *
   * @type {IPSUIAction}
   */
  get psUIAction(): IPSUIAction | null;

  /**
   * 界面行为对象（必须存在）
   *
   * @type {IPSUIAction}
   */
  getPSUIActionMust(): IPSUIAction;

  /**
   * 界面行为操作目标
   * @description 值模式 [云实体界面行为_操作数据范围] {SINGLEDATA：单项数据、 SINGLEKEY：单项数据（主键）、 MULTIDATA：多项数据、 MULTIKEY：多项数据（主键）、 NONE：无数据 }
   * @type {( string | 'SINGLEDATA' | 'SINGLEKEY' | 'MULTIDATA' | 'MULTIKEY' | 'NONE')}
   */
  uIActionTarget: string | 'SINGLEDATA' | 'SINGLEKEY' | 'MULTIDATA' | 'MULTIKEY' | 'NONE';

  /**
   * 启用点击切换模式
   * @type {boolean}
   * @default false
   */
  enableToggleMode: boolean;

  /**
   * 是否隐藏
   * @type {boolean}
   * @default false
   */
  hiddenItem: boolean;
}
